package ar.edu.utn.frba.disenio.gui;

import org.uqbar.arena.actions.MessageSend;
import org.uqbar.arena.widgets.Button;
import org.uqbar.arena.widgets.Label;
import org.uqbar.arena.widgets.Panel;
import org.uqbar.arena.windows.Dialog;
import org.uqbar.arena.windows.WindowOwner;
import ar.edu.utn.frba.disenio.application.model.BusquedaModel;
import ar.edu.utn.frba.disenio.model.exceptions.AsientoYaCompradoException;
import ar.edu.utn.frba.disenio.model.exceptions.YaLoReservoElMismoException;

@SuppressWarnings("serial")
public class SobrereservaWindow extends Dialog<BusquedaModel> {

	public SobrereservaWindow(WindowOwner owner, BusquedaModel model) {
		super(owner, model);
	}

	@Override
	protected void createFormPanel(Panel mainPanel) {
		
		this.setTitle("Aterrizar.com");
		
		new Label(mainPanel)
			.setText("El asiento " + this.getModelObject().getAsientoSeleccionado().getNumeroDeAsiento() + " ya se encuentra reservado.");
		
		new Label(mainPanel)
			.setText("¿Que desea hacer?");
		
		new Button(mainPanel)
			.setCaption("Sobrereservar")
			.onClick(new MessageSend(this, "sobreReservar"));
		
		new Button(mainPanel)
			.setCaption("Seguir buscando")
			.onClick(new MessageSend(this, "close"));
		
	}

	public void sobreReservar(){
		
		try {
			this.getModelObject().getAsientoSeleccionado().sobreReservar(this.getModelObject().getUsuario());
			new ReservaConfirmadaWindow(this.getOwner(), this.getModelObject().getAsientoSeleccionado()).open();
		} catch (YaLoReservoElMismoException e){
			new ErrorReservaWindow(this.getOwner(), this.getModelObject().getAsientoSeleccionado(), "asiento ya reservado.").open();
		} 
	}
}
